home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 26 / Cream of the Crop 26.iso / disk / fill707.zip / FILL.DOC < prev    next >
Text File  |  1997-07-31  |  23KB  |  471 lines

  1. FILL.DOC                               1                           Jul 31, 1997
  2.  
  3. WIN95 AND WINNT NOTICE:  As with most DOS-based utilities, this program doesn't
  4. understand the weird subdirectories, long filenames,  invalid  characters  that
  5. are possible under Windows 95 and Windows/NT.   Both  operating  systems  alias
  6. long filenames into names like MYFILE~1.TXT and you will need  to  specify  the
  7. aliased versions of file names to process  them.   Under  some  file  structure
  8. systems in NT, the program may not work at all.
  9.  
  10. The FILL program is designed to help you move or copy files  off  a  hard  disk
  11. while reducing the amount of wasted space on the destination disks. Internally,
  12. it does this by sorting the file names so the largest  files  are  moved/copied
  13. first.  It then moves or copies whatever files can fit on the floppy,  skipping
  14. any that can't.  Features:
  15.  
  16.   * Can either move or copy the files to the resulting location.
  17.   * Defaults to moving files if parameters passed in; prompts otherwise.
  18.   * Can continue to multiple diskettes as desired, beeping if desired when  the
  19.     next disk is expected.
  20.   * Can move the files in file name order or  in  any  of  the  other  standard
  21.     ordering sequences.
  22.   * Can be used to split up files which are too big to fit on a single disk.
  23.   * Works fine for network transfers where standard MOVE command doesn't always
  24.     work.
  25.   * Works fine on Iomega ZIP drives and other  DOS-level  compatible  removable
  26.     media.
  27.   * Can create a status/transaction file, showing what was copied/moved.
  28.   * Can label the output diskette, providing some patterns like  disk  sequence
  29.     numbers and dates which it will fill in for you.
  30.   * Can review and delete if desired any files which are already in the  output
  31.     destination (for example, already on the output diskette).
  32.   * Can reformat the whole disk if files are going to drive A or B.
  33.   * Can specify an input file ("@listfile") which  contains  the  files  to  be
  34.     copied.
  35.   * The date format shown in reports is based on your country setting.
  36.   * Pressing escape stops the program early.
  37.  
  38. Limits:
  39.   * Routine can only process the first 500 files found.  It ignores the rest of
  40.     them.  If you're using /MOVE, you can always run it after some of the files
  41.     are gone and get the rest of them that way.
  42.   * Routine can only review for deletion the first  200  files  in  the  output
  43.     location.
  44.   * Routine does not provide any cool features to  fix  up  destination  drives
  45.     that have surface errors.  If it encounters an error, it just beeps,  gives
  46.     you an error message, and returns to DOS.
  47.   * Routine will not format the output diskette for you.
  48.   * Switching diskette densities is not recommended (for  example,  intermixing
  49.     720K diskettes with 1.44MB diskettes may cause errors).
  50.  
  51.  
  52.  
  53. FILL.DOC                               2                           Jul 31, 1997
  54.  
  55. Note on copying/moving files to multiple diskettes:
  56.  
  57. I didn't think this was confusing but a lot of people don't seem to  understand
  58. the technique of how files are moved to multiple diskettes.
  59.  
  60. Let's say you have six files:
  61.  
  62.         A_FILE.ZIP      500K
  63.         B_FILE.ZIP      300K
  64.         C_FILE.ZIP      650K
  65.         D_FILE.ZIP      200K
  66.         E_FILE.ZIP      450K
  67.         F_FILE.ZIP       25K
  68.  
  69. You're moving these files to blank 1.2MB diskettes and  you  have  the  default
  70. /MULTI and /ON settings.  The program checks how much space is available on the
  71. destination drive and comes back with 1.2MB.
  72.  
  73. It scans the input files and internally sorts them by descending size.  It then
  74. looks for the biggest file in the file list and comes back with  C_FILE.ZIP  at
  75. 650K.  Will this file fit on the destination  drive?   Yes.   It  retains  that
  76. information, figures there is now 550K left on the output drive, and checks for
  77. the second biggest file.  A_FILE.ZIP is 500K.  Will that also  fit?   Yes.   So
  78. now there's 50K left.  The next biggest file is E_FILE.ZIP at 450K.  Will  that
  79. fit?  Nope.  Check the next biggest.  This continues until it reaches the  file
  80. F_FILE.ZIP which is only 25K.  That's the biggest file that  will  fit  in  the
  81. remaining 50K.
  82.  
  83. So it has three files to move.  What order should it move them?  You  have  /ON
  84. set so it's going to move them in file name order.  So it moves  the  following
  85. files in the following order:
  86.  
  87.         A_FILE.ZIP      500K
  88.         C_FILE.ZIP      650K
  89.         F_FILE.ZIP       25K
  90.  
  91. Next diskette.  Same process.  This time it processes the remaining files:
  92.  
  93.         B_FILE.ZIP      300K
  94.         D_FILE.ZIP      200K
  95.         E_FILE.ZIP      450K
  96.  
  97.  
  98. Specifying parameters:
  99.  
  100. Parameters for this program can be set in the following ways.  The last setting
  101. encountered always wins:
  102.   - Read from an *.INI file (see BRUCEINI.DOC file),
  103.   - Through the use of an environmental variable (SET FILL=whatever), or
  104.   - From the command line (see "Syntax" below)
  105.  
  106.  
  107.  
  108. FILL.DOC                               3                           Jul 31, 1997
  109.  
  110. Syntax:
  111.  
  112.     FILL [ filespec | (filelist) | @listfile ] [ pathspec | /TO pathspec ]
  113.       [ /MOVE | /COPY ] [ /PROMPT ] [ /Ox | /O-x ]
  114.       [ /OVERWRITE | /-OVERWRITE | /OVERSKIP | /OVERASK ]
  115.       [ /Xfilespec ]... [ /ATTR=attribs ] [ /WIPE ] [ /MULTI | /SINGLE ]
  116.       [ /SPLIT ] [ /FORCE ] [ /-LETTER ] [ /LABEL=label [ /START=n ] ]
  117.       [ /Frptfile [ /S+ | /S- | S* ] [ /CONT ] [ /TIME ] [ /-BEEP ] [ /Q ]
  118.       [ /-LAST ] [ /FAKE ] [ /MONO ] [ /Iinitfile | /-I ] [ /-ENV ] [ /? ]
  119.  
  120. where:
  121.  
  122. "filespec" is the file specification for  what  you  want  to  move.   You  can
  123. specify a drive  and  path  and  file  wildcards  if  necessary  (for  example,
  124. "C:\TEMP\*.BAT") but otherwise it defaults to your default drive and  directory
  125. and takes "*.*".  Note that the program cannot handle any request for more than
  126. 500 files at a time.
  127.  
  128. "(filelist)" allows you to specify multiple files  to  be  processed  from  the
  129. command line.  File names should be separated  by  spaces.   They  may  include
  130. drive, path, and wildcard information.  Remember that a  command  line  in  DOS
  131. cannot exceed 127 characters so you're limited as to how  many  different  file
  132. specifications you can provide in this fashion.
  133.  
  134. "@listfile" allows you to have a variety of file specifications saved in a text
  135. file named "listfile".  You cannot have more than  50  file  specifications  in
  136. this file (and you're still limited to the 500 files total).  Each line  should
  137. consist of a file name with optional drive and path information.   Blank  lines
  138. and lines beginning with semi-colons, colons, or quotes are ignored.
  139.  
  140. "pathspec" (or "/TO pathspec") tells the routine what drive or path to move the
  141. files to.  The use of the "/TO" keyword is optional unless the specification is
  142. being provided in an initfile.  The initial default is "A:" (or "/TO A:"). (Use
  143. the initfile--see BRUCEINI.DOC--if you need will usually need to change it "/TO
  144. B:" or something.)
  145.  
  146. In many cases, the routine doesn't really care whether the source specification
  147. precedes  or  follows  the  destination  specification.   If  either  parameter
  148. contains a wildcard or a period, FILL presumes that's the source  specification
  149. and the other one must be the destination specification.  If only one parameter
  150. is specified, FILL  usually  presumes  that's  the  destination  specification.
  151. Quickie table:
  152.  
  153.         User passes      Presumed   Presumed
  154.                          filespec   pathspec
  155.  
  156.         FILL C:          *.*        C:
  157.         FILL C: A:       C:*.*      A:
  158.         FILL *.BAS A:    *.BAS      A:
  159.         FILL *.BAS       *.BAS      A:
  160.         FILL C: /TO A:   C:*.*      A:
  161.         FILL /TO B:      *.*        B:
  162.         FILL             *.*        A:
  163.  
  164.  
  165. FILL.DOC                               4                           Jul 31, 1997
  166.  
  167. "/MOVE" says to move the files instead of copying them.  Initially defaults  to
  168. "/MOVE" if other parameters are passed in (for example, "FILL *.ZIP" will  move
  169. the files) and prompts otherwise.  Check out BRUCEINI.DOC  for  information  on
  170. changing the defaults otherwise.
  171.  
  172. "/COPY" says to copy the files instead of moving them.  Initially  defaults  to
  173. "/MOVE" if other parameters are passed in (for example, "FILL *.ZIP" will  move
  174. the files) and prompts otherwise.
  175.  
  176. "/PROMPT" says to  prompt  for  each  filename  before  moving  it.   Initially
  177. defaults to "/-PROMPT".
  178.  
  179. "/-PROMPT" says to not prompt for each file.  Initially defaults to "/-PROMPT".
  180.  
  181. "/Ox" and "/O-x" allow you to specify the copy order for the files.  "x" can be
  182. one of the following:
  183.  
  184.         N = file name
  185.         D = file date and time
  186.         S = file size
  187.  
  188. If you precede the "x" with a dash ("-"), the sort  will  be  done  in  reverse
  189. order.  Note that this parameter does not determine which files are copied;  it
  190. only determines what order they are actually copied.  Since the order that  the
  191. file tends to show up in a DOS DIR listing is based  on  creation  order,  this
  192. sequence may be relevant to  how  the  files  ultimately  show  up.   Initially
  193. defaults to "/ON".
  194.  
  195. "/OVERWRITE" says to  overwrite  same-named  files  in  the  destination  path.
  196. Initially defaults to "/OVERSKIP".
  197.  
  198. "/-OVERWRITE"  says  to  abort  if  any  same-named  files  are  found  in  the
  199. destination path.  Initially defaults to "/OVERSKIP".
  200.  
  201. "/OVERSKIP" says to skip any file that already exists in the destination  path.
  202. The counts aren't accurate in this case.  This is initially the default.
  203.  
  204. "/OVERASK" says  to  prompt  if  same-named  files  exist  in  the  destination
  205. directory.  Initially defaults to "/OVERSKIP".
  206.  
  207. "/Xfilespec" says to exclude certain  filespecs  from  being  moved.   You  can
  208. specify up to 10 exclusion parameters but each must have their  own  /Xfilespec
  209. statement.  For example, to move all files except those with a  BAS  extension,
  210. you could say "FILL /X*.BAS".
  211.  
  212. "/ATTR=attribs" allows you to specify a combination of attributes that you want
  213. considered.  You can specify any combination of R (read-only),  H  (hidden),  S
  214. (system), or A (archive bit).  Precede any character(s)  with  "-"  to  exclude
  215. instead of include.  Unlike with  the  DOS  DIR  command,  the  inclusions  and
  216. exclusions are subject to "OR" conditions; /ATTR=HS will retrieve any file that
  217. is either hidden or a system file or both.   You  can  specify  "/ATTR=ALL"  to
  218. specify that all files are to be processed.  Initially defaults  to  /ATTR=-H-S
  219. (skip hidden or system files).
  220.  
  221.  
  222. FILL.DOC                               5                           Jul 31, 1997
  223.  
  224. "/WIPE" says that if the destination drive has files on it, prompt the user for
  225. whether these files should be deleted or not.  Six sub-options show up in  this
  226. case:
  227.  
  228.     Do *NOT* delete the x file(s)    Don't delete anything
  229.     List file(s)                     List the files but don't delete any of
  230.                                      them.  The user will be reprompted for
  231.                                      these four options after pressing a key.
  232.     Select file(s) to delete         List the files and allow the user to
  233.                                      select any to be deleted.  Keys:
  234.                                         * Cursor keys -- move among list
  235.                                         * Space       -- select that file
  236.                                         * Ctrl-Enter  -- select all files
  237.                                         * Ctrl-bs     -- deselect all files
  238.                                         * Enter       -- process those tagged
  239.                                         * Esc         -- skip processing
  240.                                      After pressing Enter, the selected files
  241.                                      will be deleted.  You will then get the
  242.                                      standard four prompts again.
  243.     Delete all file(s)               Delete all files in the specified
  244.                                      directory.  Subdirectory files will not
  245.                                      be deleted.
  246.     Reformat the diskette            If your output drive is either A or B,
  247.                                      the program will shell to DOS and execute
  248.                                      a "FORMAT d:" command.  This (and the
  249.                                      next) sub-option will result in the
  250.                                      subdirectories being eliminated, something
  251.                                      which the prior sub-options don't do for
  252.                                      you.
  253.     Quick-reformat the diskette      If your output drive is either A or B and
  254.                                      you're running under DOS 5.0 or higher,
  255.                                      the program will shell to DOS and execute
  256.                                      a "FORMAT d: /Q" command.
  257.  
  258. Initially defaults to "/-WIPE".
  259.  
  260. "/-WIPE" reverses /WIPE.  Initially defaults to "/-WIPE".
  261.  
  262. "/MULTI" says to go to a second disk if all of the files can't fit on the first
  263. diskette.  Initially defaults to "/MULTI".
  264.  
  265. "/SINGLE" says process only one diskette at a time and to not  prompt  for  the
  266. next diskette once the first gets filled up.  Initially defaults to "/MULTI".
  267.  
  268.  
  269. FILL.DOC                               6                           Jul 31, 1997
  270.  
  271. "/SPLIT" says to split up large files which otherwise would not be able to  fit
  272. onto the output disk.  For example, /SPLIT is useful when you have a 1.8MB file
  273. that you're trying to copy or move to  a  1.2MB  or  1.44MB  diskette.   Unless
  274. /FORCE is specified, files are split only if an empty output diskette would not
  275. be able to support the file; FILL will not typically split up a 800KB file just
  276. because the 1.2MB output diskette only has 600KB free.   /SPLIT  must  be  used
  277. with a specific file request; not a wildcarded one.  Split files are given  the
  278. file extensions of .x01, .x02, etc (see /LETTER vs /-LETTER options  below  for
  279. explanation of the "x") until all necessary splitting is accomplished.  To  put
  280. them back together again, use the DOS  COPY  copy  with  the  /B  option.   For
  281. example:
  282.  
  283.         COPY TEST.Z01/B+TEST.Z02/B TEST.ZIP
  284.  
  285. If (and ONLY if) you use something like Norton's DIRSORT command so  the  files
  286. appear in  sequence  in  your  directory  (and  not  because  of  any  DIR  /ON
  287. specification!), you can also concatenate using wildcards:
  288.  
  289.         COPY TEST.Z0*/B TEST.ZIP          [ONLY IF PHYSICALLY IN CORRECT ORDER]
  290.  
  291. Do NOT try this unless you're sure though, okay?  Note that if you have  a  SET
  292. DIRCMD setting, the directory may look ordered when it's not.  Use DIR  /-O  to
  293. check if necessary.
  294.  
  295. "/-SPLIT" reverses "/SPLIT" and is initially the default.
  296.  
  297. "/FORCE" says to split up files when /SPLIT is used even if the file is smaller
  298. than the output disk would be.  So, if you have a 1.44MB diskette  and  a  600K
  299. file, /FORCE will allow it to be split.  This is not the  default  because  you
  300. typically do not want to split up every file; just the ones that are too big.
  301.  
  302. "/-FORCE" only allows files bigger than the output destination to be split  up.
  303. This is initially the default.
  304.  
  305. "/LETTER" says that when /SPLIT is specified,  use  the  first  letter  of  the
  306. original file extension when naming the split up file.  For  example,  TEMP.ZIP
  307. would become TEMP.Z01, TEMP.Z02, etc.  This does not affect files which do  not
  308. get split.  Initially defaults to "/LETTER".
  309.  
  310. "/-LETTER" says that split up file names  should  be  numeric  only.   TEMP.ZIP
  311. becomes TEMP.001, TEMP.002, etc.  This does not affect files which do  not  get
  312. split.  Initially defaults to "/LETTER".
  313.  
  314. "/LABEL=label" specifies the volume label to be written to the output disk.  By
  315. default, the label is not changed.   The  label  can  be  a  quoted  mixed-case
  316. string.  It can contain several replaceable lowercase only parameters:  "mm" is
  317. replaced with the two-digit month, "dd" is replaced  with  the  two-digit  day,
  318. "yy" is replaced with the two-digit year, and "n" or "nn" or "nnn" is  replaced
  319. by the sequence number of the disk.  All numeric fields are padded to the  left
  320. with zeroes as necessary.  If the current date is January 20, 1996:
  321.  
  322.         /LABEL="BKyymmdd nn"
  323.  
  324. will label the first first "BK960120 01", the second disk  "BK960120  02"  etc.
  325. Note that labels can be no longer than 11 characters in length.  All characters
  326. except the replaceable parameters will be translated to uppercase characters.
  327.  
  328.  
  329. FILL.DOC                               7                           Jul 31, 1997
  330.  
  331. "/START=n" specifies the first sequence number to use in place of "n", "nn", or
  332. "nnn" in the /LABEL parameter.  Defaults to "/START=1".
  333.  
  334. "/Frptfile" specifies the name of a status report file  to  be  created.   This
  335. file is a text file that reports on what's been processed by the  program.   If
  336. it exists already, the file is appended to, not overwritten.  A sample of  some
  337. lines from the file using the /S* option (which is not the default):
  338.  
  339.   FILL results for  /copy *.exe /ftest.txt /beep /wipe /s* /split
  340.   Being run on 01-20-1996 at 17:58:10
  341.  
  342.   Label        FileName    Date     Time                Size Operation
  343.  
  344.   TEST93 #01   AV.EXE       09/29/95 00:50:58          70,282 SKIP
  345.   TEST93 #01   BC.EXE       08/19/94 23:59:00         150,562 SKIP
  346.   TEST93 #01   BFIND.EXE    08/02/95 23:07:08          60,016 SKIP
  347.   TEST93 #01   VBDOS.EXE    08/19/94 23:59:00         555,520 COPY
  348.  
  349.   BRUCE        AV.EXE       09/29/93 00:50:58          70,282 SKIP
  350.   BRUCE        BC.EXE       08/19/92 23:59:00         150,562 SKIP
  351.   BRUCE        BFIND.EXE    08/02/93 23:07:08          60,016 SKIP
  352.  
  353. "/S+" specifies that the only files to be written to the status file are  those
  354. files that actually get copied/moved.  This is the default.
  355.  
  356. "/S-" specifies that the only files to be written to the status file are  those
  357. files that did not get copied/moved.  Since the skipping  is  determination  is
  358. done with each disk, the status file may show the same file name as "SKIP" over
  359. and over again.
  360.  
  361. "/S*" specifies that the status report should contain all files copied/moved as
  362. well as skipped.  This can be a huge report.
  363.  
  364. "/CONT" is used if you want the routine to continually check your floppy  drive
  365. to see when a new diskette has been put in and continue once it recognizes this
  366. has happened.  The only time you'd have to press a key is if you want  to  stop
  367. processing diskettes (in which case you'd press Escape).  The determination  of
  368. a new diskette is made by seeing if the  number  of  clusters  on  the  current
  369. diskette matches the number remaining on the old one.
  370.  
  371. "/-CONT" reverses "/CONT" and is initially the default.
  372.  
  373. "/TIME" says to show how much time it took for the  transfers,  showing  you  a
  374. bytes copied/moved per second.
  375.  
  376. "/-TIME" says to skip the bytes per second information.  This is initially  the
  377. default.
  378.  
  379.  
  380. FILL.DOC                               8                           Jul 31, 1997
  381.  
  382. "/BEEP" says to beep once the routine is done doing  its  thing  (a  high  tone
  383. followed by a low one).  It will also beep whenever it's time to stick in a new
  384. diskette (a low tone followed by a high one).  Initially defaults to "/BEEP".
  385.  
  386. "/-BEEP" says to not beep upon completion.  Initially defaults to "/BEEP".
  387.  
  388. "/Q" turns off the file-by-file status reporting.
  389.  
  390. "/LAST" says to indicate when you are starting the last disk  in  a  multi-disk
  391. set.  This doesn't apply to /SPLIT cases.  Some people consider  the  indicator
  392. to be rather unappealing on the screen so it's optional.  This is initially the
  393. default.
  394.  
  395. "/-LAST" turns off the last-disk indicator in a multi-disk set.
  396.  
  397. "/FAKE" turns off the actual copying of files.   It  basically  puts  you  into
  398. simulation mode so you can see what it would do, how many disks it would  take,
  399. et cetera.
  400.  
  401. "/-FAKE" reverses "/FAKE" and is initially the default.
  402.  
  403. "/MONO" (or "/-COLOR") does not  try  to  override  screen  colors.   Initially
  404. defaults to "/COLOR".
  405.  
  406. "/COLOR" (or  "/-MONO")  allows  screen  colors  to  be  overridden.   This  is
  407. initially the default.
  408.  
  409. "/Iinitfile" says to read an initialization file with the file name "initfile".
  410. The file specification *must* contain a period.  Initfiles are described in the
  411. BRUCEINI.DOC file.  Initially defaults to "/IFILL.INI".
  412.  
  413. "/-I" (or "/INULL") says to skip loading the initialization file.
  414.  
  415. "/ENV" says to look for %var% occurrences  in  the  command  line  and  try  to
  416. resolve any apparent environmental variable references.  See  BRUCEINI.DOC  for
  417. more information.  This is initially the default.
  418.  
  419. "/-ENV" says to skip resolving apparent %var% occurrences in the command  line.
  420. Initially defaults to "/ENV".
  421.  
  422. "/?" or "/HELP" or "HELP" shows you the syntax for the command.
  423.  
  424.  
  425. Return codes:
  426.  
  427. FILL returns the following ERRORLEVEL codes:
  428.  
  429.         0 = no problems, all files copied
  430.         1 = no problems, but some files skipped since /-MULTI
  431.       251 = couldn't find @listfile file
  432.       252 = had DOS errors copying/moving the files (bad sectors found)
  433.       253 = had problems copying/moving the files
  434.       254 = no files found to copy/move
  435.       255 = syntax problems, or /? requested
  436.  
  437.  
  438.  
  439. FILL.DOC                               9                           Jul 31, 1997
  440.  
  441. Author:
  442.  
  443. This program was written by Bruce Guthrie of Wayne Software.  It  is  free  for
  444. use and  redistribution  provided  relevant  documentation  is  kept  with  the
  445. program, no changes are made to the program or documentation,  and  it  is  not
  446. bundled with commercial programs or charged for separately.  People who need to
  447. bundle it in for-sale packages must  pay  a  $50  registration  fee  to  "Wayne
  448. Software" at the following address.
  449.  
  450. Additional information about this and other  Wayne  Software  programs  can  be
  451. found in the file BRUCE.DOC which should be included in the original ZIP  file.
  452. The recent change history for this and the other programs is  provided  in  the
  453. HISTORY.ymm file which should be in the same ZIP file where "y" is replaced  by
  454. the last digit of the year and "mm" is the two  digit  month  of  the  release;
  455. HISTORY.611 came out in November 1996.  This same naming convention is used  in
  456. naming the ZIP file (FILLymm.ZIP) that this program was included in.
  457.  
  458. Comments and suggestions can also be sent to:
  459.  
  460.                 Bruce Guthrie
  461.                 Wayne Software
  462.                 113 Sheffield St.
  463.                 Silver Spring, MD 20910
  464.  
  465.                 e-mail: WayneSof@erols.com   fax: (301) 588-8986
  466.                 http://www.geocities.com/SiliconValley/Lakes/2414
  467.  
  468. Please provide an Internet e-mail address on all correspondence.
  469.  
  470. 
  471.